package com.thesis.manage.service;

import com.thesis.manage.common.utils.Result;
import org.springframework.transaction.annotation.Transactional;

/**
 * @author php
 * @date 2018/1/23
 */
public interface LoginRegisterService {
    /**
     * 用户注册
     *
     * @param account  账号
     * @param password 密码
     * @param type     类型
     * @return result
     */
    @Transactional(rollbackFor = Exception.class)
    Result register(String account, String password, Integer type);

    /**
     * 用户登录
     *
     * @param account  用户名
     * @param password 密码
     * @param type     类型
     * @return result
     */
    Result login(String account, String password, Integer type);

    /**
     * 通过token获取用户信息
     *
     * @param token 令牌
     * @return result
     */
    Result findUserByToken(String token);

    /**
     * 验证token
     *
     * @param token 令牌
     * @return result
     */
    Result checkToken(String token);

    /**
     * 更新过期时间
     *
     * @param token 令牌
     * @param type  类型
     */
    void expire(String token, Integer type);

    /**
     * 用户退出
     *
     * @param token 令牌
     * @return result
     */
    Result logout(String token);

    /**
     * 修改密码
     *
     * @param id       学生id
     * @param password 密码
     */
    void updatePassword(Long id, String password);
}
